2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
{
GtkClipboard *clipboard;
GtkWidget *clipboard_widget;
+ GSList *clipboards;
clipboard = GTK_CLIPBOARD (object);
+ clipboards = g_object_get_data (G_OBJECT (clipboard->display), "gtk-clipboard-list");
+ if (g_slist_index (clipboards, clipboard) >= 0)
+ g_warning ("GtkClipboard prematurely finalized");
+
clipboard_widget = get_clipboard_widget (clipboard->display);
clipboard_unset (clipboard);
+ clipboards = g_object_get_data (G_OBJECT (clipboard->display), "gtk-clipboard-list");
+ clipboards = g_slist_remove (clipboards, clipboard);
+ g_object_set_data (G_OBJECT (clipboard->display), "gtk-clipboard-list", clipboards);
+
if (g_main_loop_is_running (clipboard->store_loop))
{
g_main_loop_quit (clipboard->store_loop);
clipboards = g_object_get_data (G_OBJECT (display), "gtk-clipboard-list");
g_object_run_dispose (G_OBJECT (clipboard));
- g_object_unref (clipboard);
clipboards = g_slist_remove (clipboards, clipboard);
-
g_object_set_data (G_OBJECT (display), "gtk-clipboard-list", clipboards);
+ g_object_unref (clipboard);
}
/**
* Return value: the appropriate clipboard object. If no
* clipboard already exists, a new one will
* be created. Once a clipboard object has
- * been created, it is persistent for all time and
- * cannot be freed.
+ * been created, it is persistent and, since
+ * it is owned by GTK+, must not be freed or
+ * unrefd.
*
* Since: 2.2
**/
* Return value: the appropriate clipboard object. If no
* clipboard already exists, a new one will
* be created. Once a clipboard object has
- * been created, it is persistent for all time and
- * cannot be freed.
+ * been created, it is persistent and, since
+ * it is owned by GTK+, must not be freed or
+ * unrefd.
**/
GtkClipboard *
gtk_clipboard_get (GdkAtom selection)
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
siblings = gtk_container_get_children (GTK_CONTAINER (menu));
if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- g_object_set (G_OBJECT (siblings->data),
- "visible", self->private_data->add_tearoffs && !in_popup,
- NULL);
+ {
+ if (self->private_data->add_tearoffs && !in_popup)
+ gtk_widget_show (GTK_WIDGET (siblings->data));
+ else
+ gtk_widget_hide (GTK_WIDGET (siblings->data));
+ }
g_list_free (siblings);
}
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
siblings = gtk_container_get_children (GTK_CONTAINER (menu));
if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- g_object_set (G_OBJECT (siblings->data),
- "visible", self->private_data->add_tearoffs && !in_popup,
- NULL);
+ {
+ if (self->private_data->add_tearoffs && !in_popup)
+ gtk_widget_show (GTK_WIDGET (siblings->data));
+ else
+ gtk_widget_hide (GTK_WIDGET (siblings->data));
+ }
g_list_free (siblings);
}
break;